<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
    var a=(function (foo){
           return typeof foo.bar;
    })({foo:{bar:1}})
    console.log(a);  //undefined
    // 考察点：自执行函数、形参、实参、return
    // 理解关键点就好懂了。 {foo: {bar:1}} 是实参、foo 是形参、foo.bar 就是 {foo: {bar:1}} 这个对象下的 bar 属性，因为是没有 bar 属性，所以是 undefined
    </script>
</body>
</html>